package com.zdp.netty.chapter14.struct;

import lombok.Data;

import java.util.HashMap;
import java.util.Map;

/**
 * @author ZhengDp
 * @Date 2024/4/10 8:10
 */
@Data
public class Header {
    /**
     * 校验码 由三部分组成
     * 1. Oxabef：固定值，表明该消息是Netty协议消息，2个字节
     * 2. 主版本号：1~255，1个字节
     * 3. 次版本号：1~255，1个字节
     */
    private int crcCode = 0xabef0101;

    /**
     * 消息长度，32，表示整个消息的长度（包括消息头和消息体）
     */
    private int length;

    /**
     * 会话Id，集群节点内全局唯一，由会话Id生成器生成
     */
    private long sessionId;

    /**
     * 消息类型 0：业务请求消息 1：业务响应消息  2：业务ONE WAY消息（即是请求又是响应消息）
     * 3： 握手请求消息  4：握手应答消息 5：心跳请求信息 6：心跳应答消息
     */
    private byte type;

    // 消息优先级 0~255
    private byte priority;

    // 附件 - 扩展的关键
    private Map<String,Object> attachment = new HashMap<>();



}
